/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：UICompositeComboGrid.js<br>
 * 日期：2016年8月24日<br>
 * 作者: 林秀桃<br>
 * 功能：把可编辑的文本框和下拉数据网格面板结合起来<br>
 *
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2");


/**
 * 类型名称：Rainier.UI.V2.UICompositeComboGrid<br>
 * 类型功能：组合网格类声明<br>
 * 接口函数：<br>
 * 成员变量：<br>
 */
Rainier.UI.V2.UICompositeComboGrid = Rainier.UI.V2.UIComposite.extend({

    NAME : "Rainier.UI.V2.UICompositeComboGrid",

    /**
	 * 函数名称：Rainier.UI.UICompositeComboGrid.init<br>
	 * 函数功能：构造函数<br>
	 * 参数输入：objParentComposite	:  	父组件实例 一般为对应的panel或者layout中添加<br>
	 * 参数输入：objProperties		:	
	 * {
	 * 		loadMsg:'dgsa',			//当数据网格（datagrid）加载远程数据时显示的消息。
	 * 		idField:'gggrer',       //	id 的字段名。
	 * }
	 * 注：具体参数信息参照easyUI官网该组件Properties。<br>	
	 * 异常信息：无<br>
	 */
    init : function(objParentComposite,objProperties){
        //使用父类初始化子类对象
        this._super(objParentComposite,objProperties);
    },

    /**
     * 函数名称：Rainier.UI.V2.UICompositeComboGrid.appendEventHandler<br>
     * 函数功能：添加事件代理<br>
     * 参数输入：无<br>
     * 参数输出：无<br>
     * 函数返回：无<br>
     * 异常信息：<br>
     */
	appendEventHandler : function(){		
		this.m_aEventList = ['onShowPanel',
		                     'onHidePanel',
		                     'onChange',
		                     'onResize',
		                     'onClickButton',
		                     'onClickIcon',
		                     'onBeforeValidate',
		                     'onValidate',
		                     
		                     'onBeforeLoad',
		                     'onLoad',
		                     'onLoadSuccess',
		                     'onLoadError',
		                     'onBeforeLoad',
		                     'onBeforeOpen',
		                     'onOpen',
		                     'onBeforeClose',
		                     'onClose',
		                     'onBeforeDestroy',
		                     'onDestroy',
		                     'onBeforeCollapse',
		                     'onCollapse',
		                     'onBeforeExpand',
		                     'onExpand',
		                     'onMove',
		                     'onMaximize',
		                     'onRestore',
		                     'onMinimize',
		                     'onClickRow',
		                     'onDblClickRow',
		                     'onClickCell',
		                     'onDblClickCell',
		                     'onBeforeSortColumn',
		                     'onSortColumn',
		                     'onResizeColumn',
		                     'onBeforeSelect',
		                     'onSelect',
		                     'onBeforeUnselect',
		                     'onUnselect',
		                     'onSelectAll',
		                     'onUnselectAll',
		                     'onBeforeCheck',
		                     'onBeforeUncheck',
		                     'onUncheck',
		                     'onCheckAll',
		                     'onUncheckAll',
		                     'onBeforeEdit',
		                     'onBeginEdit',
		                     'onEndEdit',
		                     'onAfterEdit',
		                     'onCancelEdit',
		                     'onHeaderContextMenu',
		                     'onRowContextMenu',		                     
		                     ];
		this._super();
	},
	

    /**
     * 函数名称：Rainier.UI.V2.UICompositeComboGrid.createComposite<br>
     * 函数功能：创建组件<br>
	 * 参数输入：eleParent : 父组件的节点元素<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
     */
    createComposite : function(eleParent){
        this._super(eleParent);
        var newEle = this.CreateElement("input",this.m_objProperties.id);
        eleParent.append(newEle);
        newEle.combogrid(this.m_objProperties);
    },

    /**
     * 函数名称：Rainier.UI.V2.UICompositeComboGrid.callUiMethod<br>
     * 函数功能：添加事件代理<br>
	 * 参数输入：sMethod : 方法名称
	 * 参数输入：objArgs : 更具方法名称，在该类方法中查找对应参数，或easyUI官网对应组件的方法中检索
	 * 函数返回：根据调用方法，返回相应的数值<br>
	 * 异常信息：无<br>
     */
    callUiMethod : function(sMethod,objArgs){
        return this.getElement().combogridgrid(sMethod,objArgs);
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.options<br>
	 * 函数功能：返回选项（options）对象。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：返回选择的对象<br>
	 * 异常信息：无<br>
	 */
    options : function(){
        return this.getElement().combogrid('options');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.grid<br>
	 * 函数功能：返回数据网格（datagrid）对象。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    grid : function(){
        return this.getElement().combogrid('grid');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.setValue<br>
	 * 函数功能：设置组件的值。<br>
	 * 参数输入：sValue: 'abc'<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    setValue : function(value){
        return this.getElement().combogrid('setValue',value);
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.setValues<br>
	 * 函数功能：设置组件的值的数组。<br>
	 * 参数输入：aValues ：[12,23,34]<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    setValues : function(values){
        return this.getElement().combogrid('setValues',values);
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.clear<br>
	 * 函数功能：清除组件的值。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    clear : function(){
        return this.getElement().combogrid('clear');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.panel<br>
	 * 函数功能：返回下拉面板对象<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    panel : function(){
        return this.getElement().combogrid('panel');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.textbox<br>
	 * 函数功能：返回文本框对象。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    textbox : function(){
        return this.getElement().combogrid('textbox');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.resize<br>
	 * 函数功能：调整组件的宽度。<br>
	 * 参数输入：sWideh:100<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    resize : function(sWideh){
        return this.getElement().combogrid('resize',sWideh);
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.showPanel<br>
	 * 函数功能：显示下拉面板。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    showPanel : function(){
        return this.getElement().combogrid('showPanel');
    },
     
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.destroy<br>
	 * 函数功能：销毁组件。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    destroy : function(){
        return this.getElement().combogrid('destroy');
    },
    
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.hidePanel<br>
	 * 函数功能：隐藏下拉面板。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    hidePanel : function(){
        return this.getElement().combogrid('hidePanel');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.disable<br>
	 * 函数功能：禁用组件。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    disable : function(){
        return this.getElement().combogrid('disable');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.enable<br>
	 * 函数功能：启用组件。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    enable : function(){
        return this.getElement().combogrid('enable');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.readonly<br>
	 * 函数功能：启用/禁用只读模式。该方法自版本 1.3.3 起可用。<br>
	 * 参数输入：mode: true/false<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    readonly : function(mode){
        return this.getElement().combogrid('readonly',mode);
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.validate<br>
	 * 函数功能：验证输入的值。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    validate : function(){
        return this.getElement().combogrid('validate');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.isValid<br>
	 * 函数功能：返回验证结果。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：true/false : boolean 类型的值true 表示进行了校验，false表示当前组件未进行校验<br>
	 * 异常信息：无<br>
	 */
    isValid : function(){
        return this.getElement().combogrid('isValid');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.clear<br>
	 * 函数功能：清除组件的值。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    clear : function(){
        return this.getElement().combogrid('clear');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.reset<br>
	 * 函数功能：重置组件的值。该方法自版本 1.3.2 起可用。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    reset : function(){
        return this.getElement().combogrid('reset');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.getText<br>
	 * 函数功能：获取输入的文本。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    getText : function(){
        return this.getElement().combogrid('getText');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.setText <br>
	 * 函数功能：设置文本值。<br>
	 * 参数输入：sText： 123<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    setText : function(sValue){
        return this.getElement().combogrid('setText',sValue);
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.getValues<br>
	 * 函数功能：获取组件的值的数组。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    getValues : function(){
        return this.getElement().combogrid('getValues');
    },
    
    
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.getValue<br>
	 * 函数功能：设置组件的值<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    getValue : function(){
        return this.getElement().combogrid('getValue');
    },
    
    
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.button<br>
	 * 函数功能：返回按钮对象。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：当前按钮对象<br>
	 * 异常信息：无<br>
	 */
    button : function(){
        return this.getElement().combogrid('button');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.initValue<br>
	 * 函数功能：设置初始value值。<br>
	 * 参数输入：sValue：'sun'<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    initValue : function(sValue){
        return this.getElement().combogrid('initValue',sValue);
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.getIcon<br>
	 * 函数功能：获取具体图表对象。<br>
	 * 参数输入：nIndex：5<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    getIcon : function(nIndex){
        return this.getElement().combogrid('getIcon',nIndex);
    },
    
  
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboBoxGrid.enableValidation<br>
	 * 函数功能：启用验证。该方法自版本 1.3.4 起可用。。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    enableValidation : function(){
        return this.getElement().combogrid('enableValidation');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.disableValidation<br>
	 * 函数功能：禁用验证。该方法自版本 1.3.4 起可用。<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    disableValidation : function(){
        return this.getElement().combogrid('disableValidation');
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.UICompositeComboGrid.resetValidation<br>
	 * 函数功能：重置验证<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    resetValidation : function(){
        return this.getElement().combogrid('resetValidation');
    }  
});
